#ifndef __WIZ_BASE_TYPE_SIZE_HPP__SHANHAOBO_19800429__
#define __WIZ_BASE_TYPE_SIZE_HPP__SHANHAOBO_19800429__

#include "../Core/WizBaseCoreTypeInt.hpp"

namespace Wiz
{
    namespace Size
    {
        WIZ_DECLARE(size_t);
        static ::Wiz::Size::TypeConst Invalid       = ::Wiz::UInt::Max;
        static ::Wiz::Size::TypeConst Min           = 0;
        static ::Wiz::Size::TypeConst Max           = ::Wiz::UInt::Max;
    } /// end of namespace Size
    namespace USize
    {
        WIZ_DECLARE(::Wiz::UInt::Type);
        static ::Wiz::USize::TypeConst Invalid      = ::Wiz::UInt::Max;
        static ::Wiz::USize::TypeConst Min          = 0;
        static ::Wiz::USize::TypeConst Max          = ::Wiz::UInt::Max;
    } /// end of namespace Size
    //////////////////////////////////////////////////////////////////////////
    namespace Size8
    {
        WIZ_DECLARE(::Wiz::Int8::Type);
        static ::Wiz::Size8::TypeConst Invalid      = ::Wiz::Int8::Min;
        static ::Wiz::Size8::TypeConst Min          = 0;
        static ::Wiz::Size8::TypeConst Max          = ::Wiz::Int8::Max;
    } /// end of namespace Size8
    namespace Size16
    {
        WIZ_DECLARE(::Wiz::Int16::Type);
        static ::Wiz::Size16::TypeConst Invalid     = ::Wiz::Int16::Min;
        static ::Wiz::Size16::TypeConst Min         = 0;
        static ::Wiz::Size16::TypeConst Max         = ::Wiz::Int16::Max;
    } /// end of namespace Size16
    namespace Size32
    {
        WIZ_DECLARE(::Wiz::Int32::Type);
        static ::Wiz::Size32::TypeConst Invalid     = ::Wiz::Int32::Min;
        static ::Wiz::Size32::TypeConst Min         = 0;
        static ::Wiz::Size32::TypeConst Max         = ::Wiz::Int32::Max;
    } /// end of namespace Size32
    namespace Size64
    {
        WIZ_DECLARE(::Wiz::Int64::Type);
        static ::Wiz::Size64::TypeConst Invalid     = ::Wiz::Int64::Min;
        static ::Wiz::Size64::TypeConst Min         = 0;
        static ::Wiz::Size64::TypeConst Max         = ::Wiz::Int64::Max;
    } /// end of namespace Size64
    //////////////////////////////////////////////////////////////////////////
    namespace USize8
    {
        WIZ_DECLARE(::Wiz::UInt8::Type);
        static ::Wiz::USize8::TypeConst Invalid     = ::Wiz::UInt8::Max;
        static ::Wiz::USize8::TypeConst Min         = 0;
        static ::Wiz::USize8::TypeConst Max         = ::Wiz::UInt8::Max;
    } /// end of namespace Size8
    namespace USize16
    {
        WIZ_DECLARE(::Wiz::UInt16::Type);
        static ::Wiz::USize16::TypeConst Invalid    = ::Wiz::UInt16::Max;
        static ::Wiz::USize16::TypeConst Min        = 0;
        static ::Wiz::USize16::TypeConst Max        = ::Wiz::UInt16::Max;
    } /// end of namespace Size16
    namespace USize32
    {
        WIZ_DECLARE(::Wiz::UInt32::Type);
        static ::Wiz::USize32::TypeConst Invalid    = ::Wiz::UInt32::Max;
        static ::Wiz::USize32::TypeConst Min        = 0;
        static ::Wiz::USize32::TypeConst Max        = ::Wiz::UInt32::Max;
    } /// end of namespace Size32
    namespace USize64
    {
        WIZ_DECLARE(::Wiz::UInt64::Type);
        static ::Wiz::USize64::TypeConst Invalid    = ::Wiz::UInt64::Max;
        static ::Wiz::USize64::TypeConst Min        = 0;
        static ::Wiz::USize64::TypeConst Max        = ::Wiz::UInt64::Max;
    } /// end of namespace USize64
} /// end of namespace Wiz

#endif /*__WIZ_BASE_TYPE_SIZE_HPP__SHANHAOBO_19800429__*/
